package com.twoGroup.boot.mapper;


import com.twoGroup.boot.pojo.CartAndShopAndUserAndGoods;
import com.twoGroup.boot.pojo.Order;
import com.twoGroup.boot.pojo.OrderAndAddress;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
public interface OrderMapper {
    //新增订单 购物车的部分数据加入进来，并且新增订单编号和日期
    int addOrder(Order order);

    //删除某个订单（已支付）
    int deleteOrderY(@Param("buyerId") Integer buyerId, @Param("goodsId") Integer goodsId, @Param("orderNo") String orderNo);

    //删除某个订单（未支付）
    int deleteOrderN(@Param("buyerId") Integer buyerId, @Param("goodsId") Integer goodsId, @Param("orderNo") String orderNo);
    //删除所有订单（已支付）
    int deleteAllOrderY(@Param("buyerId") Integer buyerId);

    //删除某个订单（未支付）
    int deleteAllOrderN(@Param("buyerId") Integer buyerId);

    //查询用户所有已支付订单信息
    List<OrderAndAddress> queryAllOrderY(@Param("buyerId") Integer buyerId);

    //查询用户所有未支付订单信息
    List<OrderAndAddress> queryAllOrderN(@Param("buyerId") Integer buyerId);

    //根据订单查询用户的商品（生成订单页面）
    List<OrderAndAddress> queryByOrder(@Param("orderNo") String orderNo);

    //根据店铺id查询店主id
    Integer queryShopId(@Param("shopId") Integer shopId);

    //查询用户订单信息,购买时显示页面上（用户购买单个商品时）
    Order queryId(@Param("buyerId") Integer buyerId, @Param("goodsId") Integer goodsId, @Param("orderNo") String orderNo);

    //购买成功后，修改订单的id 0====> 1
    int applySuccess(@Param("userId") Integer userId, @Param("goodsId") Integer goodsId, @Param("orderNo") String orderNo);

    //根据id查找用户购物车
    List<CartAndShopAndUserAndGoods> queryUserCart(@Param("userId") Integer userId);

    //根据订单号查询订单
    OrderAndAddress queryInfAndAddress(@Param("orderNo") String orderNo);

    //查询所有已支付订单的数量
    Integer queryAllOrderCountY(@Param("userId") Integer userId);

    //查询所有未支付订单的数量
    Integer queryAllOrderCountN(@Param("userId") Integer userId);




}
